package com.zmn.plat.dubbo.interfaces.company;

///**
// * 公司服务接口
// *
// * @author duanzuocai
// * @version v1.0
// * @since 2018/10/18 9:15
// */
//@Api(value = "公司服务", tags = {"公司"})
//public interface BaseCompanyListRemoteService {

//    /**
//     * 根据名称查询公司基本信息
//     *
//     * @param name
//     *            公司名称
//     * @return
//     */
//    @ApiOperation(value = "根据名称查询公司基本信息", response = ResponseDTO.class, notes = "公司基本信息", tags = {"基本信息"})
//    ResponseDTO<CompanyDRO> getCompanyByName(@NotBlank(message = "areaName不能为空") @ApiParam(value = "公司名称", required = true) String name);
//
//    /**
//     * 根据公司名称（工商注册名称）查询公司基本信息
//     *
//     * @param fullName
//     *            公司名称（工商注册名称）
//     * @return
//     */
//    @ApiOperation(value = "根据名称查询公司基本信息", response = ResponseDTO.class, notes = "公司基本信息", tags = {"基本信息"})
//    ResponseDTO<CompanyDRO> getCompanyByFullName(@NotBlank(message = "areaName不能为空") @ApiParam(value = "公司名称（工商注册名称）", required = true) String fullName);
//
//    /**
//     * 根据名称集合查询公司基本信息
//     *
//     * @param names
//     *            公司名称集合
//     * @return 公司集合
//     */
//    @ApiOperation(value = "根据名称集合查询公司基本信息", response = ResponseDTO.class, notes = "最大500条", tags = {"基本信息"})
//    ResponseDTO<List<CompanyDRO>> listCompanyByCompanyNames(@NotEmpty(message = "names参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH,
//        message = "names参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @ApiParam(value = "公司名称集合", required = true) List<String> names);
//
//    /**
//     * 查询公司基本信息
//     *
//     * @param companyId
//     *            公司
//     * @return
//     */
//    @ApiOperation(value = "查询公司基本信息", response = ResponseDTO.class, notes = "公司基本信息", tags = {"基本信息"})
//    ResponseDTO<CompanyDRO> getCompanyByCompanyId(@NotNull(message = "companyId不能为空") @Positive(message = "companyId必须为大于0的正整数") @ApiParam(value = "公司ID", required = true) Integer companyId);
//
//    /**
//     * 查询公司基本信息
//     *
//     * @param companyId
//     *            公司
//     * @return
//     */
//    @ApiOperation(value = "查询公司基本信息", response = ResponseDTO.class, notes = "公司基本信息", tags = {"基本信息"})
//    ResponseDTO<CompanyDRO> getCompanyByCompanyIdNoCache(@NotNull(message = "companyId不能为空") @Positive(message = "companyId必须为大于0的正整数") @ApiParam(value = "公司ID", required = true) Integer companyId);
//
//    /**
//     * 批量查询公司
//     *
//     * @return
//     */
//    @ApiOperation(value = "批量查询公司", response = ResponseDTO.class, notes = "公司基本信息", tags = {"基本信息"})
//    ResponseDTO<List<VtDTO>> listVtByCommpanyIds(@NotEmpty(message = "companyIds参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH,
//        message = "companyIds参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @ApiParam(value = "公司ID集合", required = true) List<Integer> companyIds);
//
//    /**
//     * 查询公司与公司对应的信息
//     *
//     * @param companyIds
//     * @return
//     */
//    @ApiOperation(value = "查询公司与公司对应的信息", response = ResponseDTO.class, notes = "公司基本信息", tags = {"公司与公司"})
//    ResponseDTO<List<CompanyDRO>> listInfoByCompanyIds(@ApiParam(value = "公司ID集合") List<Integer> companyIds);
//
//    /**
//     * 查询公司与公司对应的信息
//     *
//     * @param companyIds
//     * @return
//     */
//    @ApiOperation(value = "查询公司信息", response = ResponseDTO.class, notes = "公司基本信息", tags = {"基本信息"})
//    ResponseDTO<List<CompanyDRO>> listByCompanyIdsAndStatus(@ApiParam(value = "公司ID集合") List<Integer> companyIds,@ApiParam("状态") Integer status);
//
//    /**
//     * 根据所属组织架构Id集合查询公司
//     *
//     * @param orgIds
//     *            所属组织架构集合
//     * @return
//     */
//    @ApiOperation(value = "根据所属组织架构Id集合查询公司", response = ResponseDTO.class, notes = "公司基本信息", tags = {"组织架构"})
//    ResponseDTO<List<CompanyDRO>> listCompanyByOrgIds(@NotEmpty(message = "orgIds参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH,
//        message = "orgIds参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @ApiParam(value = "所属组织架构集合", required = true) List<Integer> orgIds);
//
//    /**
//     * 分页查询公司信息
//     *
//     * @param dio
//     *            查询条件 其中，如果没有传分页参数，默认查1~500条，pagesNumber 必须小于等于500
//     * @param staffId
//     *            如果需要过滤数据权限就传
//     * @return
//     */
//    @ApiOperation(value = "分页查询公司信息", response = ResponseDTO.class, notes = "没有传分页参数，默认查1~500条，pagesNumber 必须小于等于500", tags = {"基本信息"})
//    ResponseDTO<List<CompanyDRO>> listPageByQuery(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) BaseCompanyDIO dio, @ApiParam(value = "员工id") Integer staffId);
//
//    /**
//     * 分页查询公司信息
//     *
//     * @param dio
//     *            查询条件 其中，如果没有传分页参数，默认查1~500条，pagesNumber 必须小于等于500
//     * @param staffId
//     *            如果需要过滤数据权限就传
//     * @return
//     */
//    @ApiOperation(value = "分页查询公司信息", response = ResponseDTO.class, notes = "没有传分页参数，默认查1~500条，pagesNumber 必须小于等于500", tags = {"基本信息"})
//    ResponseDTO<List<VtDTO>> listVtPageByQuery(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) BaseCompanyDIO dio, @ApiParam(value = "员工id") Integer staffId);
//
//    /**
//     * 分页查询公司信息(通过网关API获取员工ID)
//     *
//     * @param dio
//     *            查询条件 其中，如果没有传分页参数，默认查1~500条，pagesNumber 必须小于等于500
//     * @param limitPermit
//     *            过滤数据权限开关：true-开启；false-关闭
//     * @return
//     */
//    @ApiOperation(value = "分页查询公司信息", response = ResponseDTO.class, notes = "通过网关API获取员工ID", tags = {"基本信息"})
//    ResponseDTO<List<VtDTO>> listVtPageByQueryAndLimitPermit(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) BaseCompanyDIO dio,
//        @NotNull(message = "limitPermit不能为空") @ApiParam(value = "是否过滤权限", required = true) Boolean limitPermit);
//
//    /**
//     * 分页查询公司信息(通过网关API获取员工ID)
//     *
//     * @param dio
//     *            查询条件 其中，如果没有传分页参数，默认查1~500条，pagesNumber 必须小于等于500
//     * @param limitPermit
//     *            过滤数据权限开关：true-开启；false-关闭
//     * @return
//     */
//    @ApiOperation(value = "分页查询公司信息", response = ResponseDTO.class, notes = "通过网关API获取员工ID", tags = {"基本信息"})
//    ResponseDTO<BasePageDRO<VtDTO>> listVtBOPageByQueryAndLimitPermit(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) BaseCompanyDIO dio,
//                                                                    @NotNull(message = "limitPermit不能为空") @ApiParam(value = "是否过滤权限", required = true) Boolean limitPermit);
//
//    /**
//     * 根据公司类型查询公司
//     *
//     * @param type
//     *            类型：100平台公司，110大区，120子公司，130服务商，140电器公司，200渠道，220企业客户，230厂商客户，300支付平台，310配件供应商，320整机供应商，330配送供应商
//     * @param childType
//     *            子类型
//     * @param status
//     *            状态：1禁用，2启用
//     * @param plat
//     *            平台标志：10啄木鸟，20言而有信，30一步生活，40川南环保
//     * @return VtDTO：value:id, text:name,status:是否启用
//     */
//    @ApiOperation(value = "公司类型查询公司", response = ResponseDTO.class, notes = "公司类型查询公司", tags = {"基本信息"})
//    ResponseDTO<List<VtDTO>> listCompanyByType(@NotNull(message = "type不能为空") @Positive(message = "type必须为大于0的正整数") @ApiParam(value = "类型", required = true) Integer type,
//        @ApiParam(value = "子类型") Integer childType, @NotNull(message = "status不能为空") @Positive(message = "status必须为大于0的正整数") @ApiParam(value = "状态", required = true) Integer status,
//        @ApiParam(value = "平台") Integer plat);
//
//    /**
//     * 分页查询所有公司，最大返回500条
//     *
//     * @param pageNum
//     * @param pageSize
//     * @return
//     */
//    @ApiOperation(value = "分页查询所有公司", response = ResponseDTO.class, notes = "最大返回500条", tags = {"基本信息"})
//    ResponseDTO<List<VtDTO>> listCompanyVtByPage(@NotNull(message = "pageNum不能为空") @Positive(message = "pageNum必须为大于0的正整数") @ApiParam(value = "页码", required = true) Integer pageNum,
//        @NotNull(message = "pageSize不能为空") @Positive(message = "pageSize必须为大于0的正整数") @Max(value = 500, message = "每页最大500条数据") @ApiParam(value = "每页条数", required = true) Integer pageSize);
//
//    /**
//     * 分页查询所有公司，最大返回500条
//     *
//     * @return id, name, status
//     */
//    @ApiOperation(value = "分页查询所有公司", response = ResponseDTO.class, notes = "最大返回500条", tags = {"基本信息"})
//    ResponseDTO<List<CompanyDRO>> listAllCompanyInfoByPage(@NotNull(message = "pageNum不能为空") @Positive(message = "pageNum必须为大于0的正整数") @ApiParam(value = "页码", required = true) Integer pageNum,
//        @NotNull(message = "pageSize不能为空") @Positive(message = "pageSize必须为大于0的正整数") @Max(value = 500, message = "每页最大500条数据") @ApiParam(value = "每页条数", required = true) Integer pageSize);
//
//    /**
//     * 描述: 获取啄木鸟总部下所有信息公司（ERP使用）
//     *
//     * @return com.zmn.common.dto.ResponseDTO<com.zmn.plat.dubbo.dto.company.CompanyDRO>
//     * @updater wangjie 添加前2个月的禁用掉的公司数据，必须是在组织架构关系内的公司
//     **/
//    @ApiOperation(value = "获取啄木鸟总部下所有信息公司（ERP使用）", response = ResponseDTO.class, notes = "啄木鸟总部下所有信息公司", tags = {"啄木鸟总部", "信息公司"})
//    ResponseDTO<List<CompanyDRO>> listZmnAllInfomationCompany();
//
//    /**
//     * 描述: 获取啄木鸟总部下所有电器公司（ERP使用）
//     *
//     * @return com.zmn.common.dto.ResponseDTO<com.zmn.plat.dubbo.dto.company.CompanyDRO>
//     * @updater wangjie 添加前2个月的禁用掉的公司数据，必须是在组织架构关系内的公司
//     **/
//    @ApiOperation(value = "获取啄木鸟总部下所有电器公司（ERP使用）", response = ResponseDTO.class, notes = "所有电器公司", tags = {"所有电器公司"})
//    ResponseDTO<List<CompanyDRO>> listZmnAllElectricCompany();
//
//    /**
//     * 查询公司年度目标
//     *
//     * @param companyId
//     *            公司ID, 可为空
//     * @param cityId
//     *            城市ID, 可为空
//     * @return 目标
//     */
//    @ApiOperation(value = "查询公司年度目标", response = ResponseDTO.class, notes = "公司年度目标", tags = {"年度目标"})
//    ResponseDTO<List<CompanyTargetDRO>> listCompanyTarget(@ApiParam(value = "公司ID") Integer companyId, @ApiParam(value = "城市ID") Integer cityId);
//
//    /**
//     * 描述: 根据类型，平台标志查询公司信息
//     *
//     * @param plat
//     *            平台标志：10啄木鸟，20言而有信，30一步生活，40川南环保
//     * @param type
//     *            类型：100平台公司，110大区，120子公司，130服务商，140电器公司，200渠道，220企业客户，230厂商客户，300支付平台，310配件供应商，320整机供应商，330配送供应商
//     * @return
//     **/
//    @ApiOperation(value = "根据类型，平台标志查询公司信息", response = ResponseDTO.class, notes = "公司基本信息", tags = {"类型", "平台"})
//    ResponseDTO<List<CompanyDRO>> listCompanyByPlatAndType(@NotNull(message = "plat不能为空") @Positive(message = "plat必须为大于0的正整数") @ApiParam(value = "平台标志", required = true) Integer plat,
//        @NotNull(message = "type不能为空") @Positive(message = "type必须为大于0的正整数") @ApiParam(value = "类型", required = true) Integer type, @ApiParam(value = "子类型") Integer childType);
//
//    /**
//     * 描述: 根据类型，平台标志查询公司信息
//     *
//     * @param companyTypeDIOList
//     *            类型：100平台公司，110大区，120子公司，130服务商，140电器公司，200渠道，220企业客户，230厂商客户，300支付平台，310配件供应商，320整机供应商，330配送供应商
//     * @param plat
//     *            平台标志：10啄木鸟，20言而有信，30一步生活，40川南环保
//     * @return java.util.List<com.zmn.plat.model.entity.company.BaseCompany>
//     * @author wangjie
//     * @since 14:50 2019/6/14
//     **/
//    @ApiOperation(value = "根据类型，平台标志查询公司信息", response = ResponseDTO.class, notes = "公司基本信息", tags = {"类型", "平台"})
//    ResponseDTO<List<CompanyDRO>> listCompanyByTypes(
//        @NotEmpty(message = "companyTypeDIOList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH,
//            message = "companyTypeDIOList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Valid @ApiParam(value = "类型集合", required = true) List<CompanyTypeDIO> companyTypeDIOList,
//        @NotNull(message = "plat不能为空") @Positive(message = "plat必须为大于0的正整数") @ApiParam(value = "平台标志", required = true) Integer plat);
//
//    /**
//     * 描述: 根据类型，平台标志查询公司信息 添加上上个月修改为禁用的数据
//     *
//     * @param companyTypeDIOList
//     *            类型：100平台公司，110大区，120子公司，130服务商，140电器公司，200渠道，220企业客户，230厂商客户，300支付平台，310配件供应商，320整机供应商，330配送供应商
//     * @param plat
//     *            平台标志：10啄木鸟，20言而有信，30一步生活，40川南环保
//     * @return com.zmn.common.dto.ResponseDTO<com.zmn.plat.dubbo.dto.company.CompanyDRO>
//     * @author wangjie
//     * @since 17:22 2019/7/11
//     **/
//    @ApiOperation(value = "根据类型，平台标志查询公司信息 添加上上个月修改为禁用的数据", response = ResponseDTO.class, notes = "添加上上个月修改为禁用的数据", tags = {"类型", "平台"})
//    ResponseDTO<List<CompanyDRO>> listCompanyByTypesUpdate(
//        @NotEmpty(message = "companyTypeDIOList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH,
//            message = "companyTypeDIOList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Valid @ApiParam(value = "类型集合", required = true) List<CompanyTypeDIO> companyTypeDIOList,
//        @ApiParam(value = "平台标志") Integer plat);
//
//    /**
//     * 描述: 根据类型，平台标志查询公司信息
//     *
//     * @param companyTypeDIOList
//     *            公司类型集合
//     * @param plat
//     *            平台标志：10啄木鸟，20言而有信，30一步生活，40川南环保
//     * @param month
//     *            最近几月份被禁用的
//     * @return
//     */
//    @ApiOperation(value = "根据类型，平台标志查询公司信息", response = ResponseDTO.class, notes = "公司基本信息", tags = {"类型", "平台"})
//    ResponseDTO<List<CompanyDRO>> listCompanyByTypesUpdate(
//        @NotEmpty(message = "companyTypeDIOList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Size(min = 1, max = DubboConsts.MAX_PARAM_LENGTH,
//            message = "companyTypeDIOList参数不能为空且个数不能超过" + DubboConsts.MAX_PARAM_LENGTH) @Valid @ApiParam(value = "类型集合", required = true) List<CompanyTypeDIO> companyTypeDIOList,
//        @ApiParam(value = "平台标志") Integer plat, @ApiParam(value = "最近几月份被禁用的") Integer month);
//
//    /**
//     * 统计总条数
//     *
//     * @param dio
//     *            查询条件
//     * @param staffId
//     *            如果需要过滤数据权限就传
//     * @return count
//     */
//    @ApiOperation(value = "统计总条数", response = ResponseDTO.class, notes = "统计总条数", tags = {"统计"})
//    ResponseDTO<Integer> countByQuery(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) BaseCompanyDIO dio, Integer staffId);
//}
